ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

New WINDEV, WEBDEV and WINDEV Mobile 2024 feature!
Help / WLanguage / Managing databases / HFSQL / 
  • Exemples
  • Parcours des données spatiales : utilisation des index spatiaux
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Permet de savoir si un polygone géographique croise une autre géométrie.
Pour que deux géométries se croisent :
  • Les intérieurs de la géométrie A et de la géométrie B ont au moins un point en commun.
  • L'intérieur de la géométrie A n'a pas tous ses points dans l'intérieur de la géométrie B, et vice-versa : la géométrie A ne doit pas contenir la géométrie B et la géométrie B ne doit pas contenir la géométrie A.
  • L'intersection des intérieurs doit avoir une dimension inférieure au maximum de la dimension des géométries manipulées.
Syntaxe
<Résultat> = <Géométrie A>.Croise(<Géométrie B>)
<Résultat> : Booléen
  • Vrai si la géométrie A croise la géométrie B,
  • Faux dans le cas contraire.
En cas d'erreur, la variable ErreurDétectée est à Vrai. Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Géométrie A> : Variable de type PolygoneGéo
Nom de la variable de type PolygoneGéo à manipuler.
<Géométrie B> : Variable correspondant à des données spatiales
Nom de la variable correspondant à la seconde géométrie manipulée. Cette géométrie peut correspondre à un des types de variables suivants :
Remarques

Exemples

Exemple 1 : Croisement de deux polygones :
Deux polygones (qui sont donc de dimension 2) ayant une partie de leur intérieur en commun ne se croisent pas, car leur intersection est également un polygone, dont la dimension est égale à la dimension des deux géométries (2). Toutefois, ces polygones se chevauchent et s'intersectent.
Dans ce cas :
  • la fonction <Variable PolygoneGéo>.Croise renvoie Faux.
  • une erreur non fatale est levée lorsque la fonction <Variable PolygoneGéo>.Croise est appelée avec deux polygones.
Exemple 2 : Croisement d'une polyligne et d'un polygone :
Une polyligne passant au travers d'un polygone mais ayant des points hors de ce polygone, croise le polygone. En effet, l'intersection entre les deux géométries est une polyligne, dont la dimension est inférieure à celle du polygone.

Parcours des données spatiales : utilisation des index spatiaux

Il est possible d'effectuer un parcours sur un fichier de données avec un filtre concernant des données spatiales. Par exemple, le filtre utilisé peut être basé sur le résultat de la fonction <Variable PolygoneGéo>.Croise.
Pour optimiser ce filtre sur des données spatiales, il est recommandé d'utiliser les index spatiaux via la syntaxe suivante :
POUR TOUT Fichier AVEC Fonction_WLangage(Fichier.RubriqueSpatiale, variable_spatiale)

où :
  • Fonction_WLangage correspond à la fonction <Variable PolygoneGéo>.Croise.
  • Rubrique_spatiale correspond à une rubrique spatiale du fichier de données. Cette rubrique doit :
    • être de type "Données géographiques" ou de type "Données géométriques".
    • être définie comme une "Clé spatiale".
  • Variable_spatiale correspond à une variable spatiale donnée, utilisée pour la comparaison avec la rubrique spatiale. Cette variable est par exemple, une variable de type PolygoneGéo, Polygone2D, etc.
Remarque : Bien que disponible, la syntaxe "POUR TOUT Fichier" n'est pas recommandée car cette syntaxe n'utilisant pas les index spatiaux, ses performances ne sont pas optimisées. Effet, dans ce cas, tout le fichier de données est parcouru : les index spatiaux ne sont pas utilisés.
POUR TOUT Fichier
SI Fonction_WLangage(Fichier.Rubrique_spatiale, Variable_spatiale) = Vrai ALORS
   ...
   FIN
FIN
Classification Métier / UI : Code métier
Composante : wd290hf.dll
Minimum version required
  • Version 2024
Comments
Click [Add] to post a comment

Last update: 04/23/2024

Send a report | Local help